package com.caishi.lkx.exam.records;

/**
 * 做题记录获取接口
 */
public interface RecordsGetKeyService {
    /**
     * 获取科目做题数统计
     *
     * @param industryCode 行业code
     * @param examId       考试id
     * @param categoryId   科目id
     * @return key
     */
    String getCategoryCountRecordsKey(String userId, String industryCode, String examId, Long categoryId);

    /**
     * 获取试题集合做题记录
     *
     * @param userId
     * @param industryCode 行业code
     * @param examId       考试id
     * @param categoryId   科目id
     * @param type         集合类型
     * @param id           集合id
     * @return key
     */
    String getQuestionRecordsKey(String userId, String industryCode, String examId, Long categoryId, RecordsCollectType type, String id);

    /**
     * 获取章节做题数统计
     *
     * @param userId
     * @param industryCode 行业code
     * @param examId       考试id
     * @param categoryId   科目id
     * @param type
     * @param id
     * @return key
     */
    String getCollectCountRecordsKey(String userId, String industryCode, String examId, Long categoryId, RecordsCollectType type, String id);

    /**
     * 获取科目下最新错题记录
     *
     * @param industryCode 行业code
     * @param examId       考试id
     * @param categoryId   科目id
     * @return key
     */
    String getErrorRecordsKey(String userId, String industryCode, String examId, Long categoryId);


    /**
     * 获取科目下最新收藏记录
     *
     * @param industryCode 行业code
     * @param examId       考试id
     * @param categoryId   科目id
     * @return key
     */
    String getCollectRecordsKey(String userId, String industryCode, String examId, Long categoryId);

    /**
     * 集合错题集
     *
     * @param userId
     * @param industryCode
     * @param examId
     * @param categoryId
     * @param type
     * @param id
     * @return
     */
    String getErrorInCollectDataKey(String userId, String industryCode, String examId, Long categoryId, RecordsCollectType type, String id);


    /**
     * 获取集合下收藏数据
     *
     * @param userId
     * @param industryCode 行业code
     * @param examId       考试id
     * @param categoryId   科目id
     * @param type
     * @param id
     * @return key
     */
    String getCollectInCollectionDataKey(String userId, String industryCode, String examId, Long categoryId, RecordsCollectType type, String id);

    /**
     * 用户科目下做题集合记录
     *
     * @param userId
     * @param industryCode
     * @param examId
     * @param categoryId
     * @return
     */
    String getCategoryCollectRecordsKey(String userId, String industryCode, String examId, Long categoryId);


    /**
     * 栏目下视频观看记录
     * @param userId 用户id
     * @param industryCode 行业code
     * @param examId 考试id
     * @param categoryId 科目id
     * @param columnId 栏目id
     * @param chapterId 章节id
     * @return
     */
    String getVideoRecordsKey(String userId, String industryCode, String examId, Long categoryId, String columnId, String chapterId);

    /**
     * 章节视频观看记录统计
     * @param userId 用户id
     * @param industryCode 行业code
     * @param examId 考试id
     * @param categoryId 科目id
     * @param columnId 栏目id
     * @param chapterId 章节id
     * @return
     */
    String getCountVideoRecordsKey(String userId, String industryCode, String examId, Long categoryId, String columnId, String chapterId);

    /**
     * 栏目下视频观看记录统计
     * @param userId 用户id
     * @param industryCode
     * @param examId
     * @param categoryId
     * @param columnId
     * @return
     */
    String getCountColumnVideoRecordsKey(String userId, String industryCode, String examId, Long categoryId,String columnId);
}
